package net.lijingye.education.service;

import net.lijingye.education.entity.*;
import net.lijingye.education.exception.*;
import org.springframework.expression.spel.ast.Assign;
import org.springframework.stereotype.Service;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * Created by LijingYe on 2016/3/29.
 */
@Service
public interface UtilService {
    List<Term> getTermList() throws DaoException;

    List<Province> getProvinceList() throws DaoException;

    Province getProvinceById(String provinceId) throws DaoException, ProfileProvinceNotExistsException;

    List<City> getCityListByProvinceId(Serializable provinceId) throws ObjectNotExistsException, DaoException;

    City getCityById(String cityId) throws DaoException, ProfileCityNotExistsException;

    PPT getPPTById(String pptId) throws DaoException, ObjectNotExistsException;

    PPT getPPTByIdAndDownload(String pptId) throws DaoException, ObjectNotExistsException;

    Topic getTopicById(String topicId) throws DaoException, ObjectNotExistsException;

    Topic getTopicByIdAndKick(String topicId) throws DaoException, ObjectNotExistsException;

    TopicReply addTopicReply(String topicId, Date time, String content, User user, User toUser) throws DaoException, ObjectNotExistsException;

    TopicReply addTopicReplyFile(Integer topicReplyId, List<String> fileList) throws DaoException, ObjectNotExistsException;

    Source getSourceById(String sourceId) throws DaoException, ObjectNotExistsException;

    Source getSourceByIdAndKick(String sourceId) throws DaoException, ObjectNotExistsException;

    Source getSourceByIdAndDownload(String sourceId) throws DaoException, ObjectNotExistsException;

    SourceReply addSourceReply(String sourceId, Date time, String content, User user) throws DaoException, ObjectNotExistsException;

    SourceReply addSourceReplyFile(Integer sourceReplyId, List<String> fileList) throws DaoException, ObjectNotExistsException;

    String getSourceAvgScore(String sourceId) throws DaoException, ObjectNotExistsException;

    SourceScore getSourceMyScore(String sourceId, User user) throws DaoException, ObjectNotExistsException;

    String addSourceScore(String sourceId, User user, int score) throws DaoException, ObjectNotExistsException;

    Tweet getTweetById(String tweetId) throws DaoException, ObjectNotExistsException;

    TweetReply addTweetReply(String tweetId, Date time, String content, User user, User toUser) throws DaoException, ObjectNotExistsException;

    TweetReply addTweetReplyFile(String tweetReplyId, List<String> fileList) throws DaoException, ObjectNotExistsException;

    Assignment getAssignmentById(String assignmentId) throws DaoException, ObjectNotExistsException;

    Assignment getAssignmentByIdAndDownloadAnswer(String assignmentId) throws DaoException, ObjectNotExistsException, FileNotFoundException;

    StudentAssignment getStudentAssignmentById(String assignmentId, String userId) throws DaoException, ObjectNotExistsException;

    StudentAssignment getStudentAssignmentByIdAndDownload(String assignmentId, String userId) throws DaoException, ObjectNotExistsException, FileNotFoundException;
}
